home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1997 February / EnigmA AMIGA RUN 15 (1997)(G.R. Edizioni)(IT)[!][issue 1997-02][PLANET CD V].iso / enigma / earcd / sviluppo / svilupp2 / muiclstr.lha / txt / MuiOSimple.def < prev    next >
Text File  |  1995-12-19  |  31KB  |  810 lines

  1. |##########|
  2. |#MAGIC   #|DNEIEIEN
  3. |#PROJECT #|"Mui"
  4. |#PATHS   #|"StdProject"
  5. |#FLAGS   #|xx---x-xxx--x-x-----------------
  6. |#USERSW  #|--------------------------------
  7. |#USERMASK#|--------------------------------
  8. |#SWITCHES#|x----xxxxx-xx---
  9. |##########|
  10.  
  11. DEFINITION MODULE MuiOSimple;
  12.  
  13. (*------------------------------------------
  14.  
  15.   :Module.      MuiOSimple.mod
  16.   :Author.      Henning Thielemann
  17.   :Address.     Veilchenweg 34, 06118 Halle, Germany
  18.   :EMail.       henning.thielemann@student.uni-halle.de
  19.   :Version.     $VER: MuiOSimple.mod 8.0 (01.06.95)
  20.   :Copyright.   Henning Thielemann
  21.   :Language.    Cluster
  22.   :Translator.  Amiga Cluster V2.0
  23.   :Contents.    Contains the object creation on a simple manner
  24.   :Bugs.
  25.   :Usage.
  26.   :History.     .2    [ht]  01-Jun-1995 : Translated to Cluster
  27.   :History.     .1    [awn] 02-Jul-1994 : Created in Oberon by Albert Weinert
  28.  
  29. --------------------------------------------*)
  30.  
  31. IMPORT Exec      AS e,
  32.        Intuition AS I,
  33.        Utility   AS u,
  34.        SYSTEM    AS y;
  35. FROM System    IMPORT Regs, SysStringPtr;
  36. FROM Resources IMPORT New;
  37. FROM MuiO AS m IMPORT All;
  38.  
  39. CONST   ArrayAdd = 24;
  40.  
  41. TYPE
  42.   TagArray    = POINTER TO ARRAY OF u.TagItem;
  43.   Class       = POINTER TO ClassDesc;
  44.   Args        = POINTER TO ArgsDesc;
  45.   Hook        = POINTER TO HookDesc;
  46.   StringArray = ARRAY OF SysStringPtr;
  47.  
  48.   ClassDesc = RECORD OF e.Node
  49.         name   : ARRAY [32] OF CHAR;
  50.         iclass : I.IClassPtr;
  51.         tags   : TagArray;
  52.         tagnum : LONGINT;
  53.         tagdata : BOOLEAN;
  54.           END;
  55.  
  56.   ArgsDesc = RECORD END;
  57.  
  58.   PopupArgs = RECORD OF ArgsDesc
  59.           linkedObj : Object (* Das Objekt zu dem das Popup Object gelinkt ist *)
  60.         END;
  61.   HookDef = PROCEDURE ( hook : Hook; object : Object; args : Args ):LONGINT;
  62.  
  63. (* Hook-Example.
  64.  *
  65.  *  TYPE  PopWindowArgs = RECORD( d : MuiSimple.ArgsDesc );
  66.  *                          window : Object;
  67.  *                        END;
  68.  *
  69.  *  VAR myHook : MuiSimple.Hook;
  70.  *      button : Object;
  71.  *      window : Object;
  72.  *
  73.  *  PROCEDURE PopWindow( hook : Hook; object : Object; args : Args ) : LONGINT;
  74.  *    BEGIN
  75.  *      IF args # NIL THEN
  76.  *        IF args(PopWindowArgs).window # NIL THEN
  77.  *          m.DoMethod( args(PopWindowArgs).window, m.mWindowToFront );
  78.  *        END;
  79.  *      END;
  80.  *      RETURN 0;
  81.  *    END PopWindow;
  82.  *
  83.  *  BEGIN
  84.  *    [... create Application Windows ...]
  85.  *
  86.  *    myHook := MuiSimple.MakeHook( PopWindow );
  87.  *    IF myHook # NIL THEN
  88.  *      m.DoMethod( button, m.mNotify, m.aPressed, e.false,
  89.  *                    button, 3, m.mCallHook, myHook, window );
  90.  *    END;
  91.  *    [... Do the other magic ...]
  92.  *
  93.  * Note: Typed on the fly, no warranty is given that this piece of code really work.
  94.  *)
  95.  
  96.   HookDesc = RECORD OF e.MinNode
  97.          entry     : PROCEDURE ( hook   IN A0 : Hook;
  98.                      object IN A2 : Object;
  99.                      args   IN A1 : Args ):LONGINT;
  100.          subEntry  : HookDef;
  101.          a5        : ANYPTR;
  102.  
  103.          object    : Object;
  104.        END;
  105.  
  106. VAR no : e.List;
  107.  
  108. (* ---- MuiSimple Hook-Dispatcher ---- *)
  109. $$PushRegs := TRUE;
  110. $$StackChk := FALSE;
  111. PROCEDURE HookEntry(hook   IN A0 : Hook;
  112.             object IN A2 : Object;
  113.             args   IN A1 : Args): LONGINT;
  114.  
  115. PROCEDURE MakeHook (entry: HookDef):Hook;
  116.  
  117. PROCEDURE SetHookObject (hook : Hook; object : Object);
  118.  
  119. PROCEDURE GetHookObject (hook : Hook) : Object;
  120.  
  121.  
  122. (***************************************************************************
  123. ** Class Tree
  124. ****************************************************************************
  125. **
  126. ** rootclass               (BOOPSI's base class)
  127. ** +--Notify               (implements notification mechanism)
  128. **    +--Family            (handles multiple children)
  129. **    !  +--Menustrip      (describes a complete menu strip)
  130. **    !  +--Menu           (describes a single menu)
  131. **    !  \--Menuitem       (describes a single menu item)
  132. **    +--Application       (main class for all applications)
  133. **    +--Window            (handles intuition window related topics)
  134. **    +--Area              (base class for all GUI elements)
  135. **       +--Rectangle      (creates (empty) rectangles)
  136. **       +--Image          (creates images)
  137. **       +--Text           (creates some text)
  138. **       +--String         (creates a string gadget)
  139. **       +--Prop           (creates a propoptional gadget)
  140. **       +--Gauge          (creates a fule gauge)
  141. **       +--Scale          (creates a percentaee scale)
  142. **       +--Boopsi         (interface to BOOPSI gadgets)
  143. **       +--Colorfield     (creates a field with changeable color)
  144. **       +--List           (creates a line-oriented list)
  145. **       !  +--Floattext   (special list with floating text)
  146. **       !  +--Volumelist  (special list with volumes)
  147. **       !  +--Scrmodelist (special list with screen modes)
  148. **       !  \--Dirlist     (special list with files)
  149. **       +--Group          (groups other GUI elements)
  150. **          +--Registep    (handles page groups with titles)
  151. **          +--Virtgroup   (handles virtual groups)
  152. **          +--Scrollgroup (handles virtual groups with scrollers)
  153. **          +--Scrollbar   (creates a scrollbar)
  154. **          +--Listview    (creates a listview)
  155. **          +--Radio       (creates radio buttons)
  156. **          +--Cycle       (creates cycle gadgets)
  157. **          +--Slider      (creates slider gadgets)
  158. **          +--Coloradjust (creates some RGB sliders)
  159. **          +--Palette     (creates a complete palette gadget)
  160. **          +--Colorpanel  (creates a panel of colors)
  161. **          +--Popstring   (base class for popups)
  162. **             +--Popobject(popup a MUI object in a window)
  163. **             \--Popasl   (popup an asl requester)
  164. **
  165. **************************************************************)
  166.  
  167. (**************************************************************************
  168. **
  169. ** Object Generation
  170. ** -----------------
  171. **
  172. ** The xxxObject (and xChilds) procedures generate new instances of MUI classes.
  173. ** Every xxxObject can be followed by tagitems specifying initial create
  174. ** time attributes for the new object and must be terminated with the
  175. ** End macro:
  176. **
  177. ** StringObject;
  178. **          TagItem2( m.aStringContents, "foo",
  179. **                    m.aStringMaxLen  , 40 );
  180. ** obj := End();
  181. **
  182. ** With the Child, SubWindow and WindowContents shortcuts you can
  183. ** construct a complete GUI within one command:
  184. **
  185. ** ApplicationObject;
  186. **
  187. **          ...
  188. **
  189. **          SubWindow; WindowObject;
  190. **             WindowContents; VGroup;
  191. **                Child; String("foo",40);
  192. **                Child; String("bar",50);
  193. **                Child; HGroup;
  194. **                   Child; CheckMark(TRUE);
  195. **                   Child; CheckMark(FALSE);
  196. **                   end;
  197. **                end;
  198. **             end;
  199. **
  200. **          SubWindow; WindowObject;
  201. **             WindowContents; HGroup;
  202. **                Child; ...;
  203. **                Child; ...;
  204. **                end;
  205. **             end;
  206. **
  207. **          ...
  208. **
  209. ** app := End();
  210. **
  211. ***************************************************************************)
  212.  
  213. PROCEDURE StoreObject (VAR store : ANYPTR; object : Object) : Object;
  214. | store sollte Typ des Objects besitzen, ANYPTR nur der VAR-Allgemeinheit wegen
  215.  
  216.  
  217. PROCEDURE MakeFamilyObjectA (tags : MuiTagAPtr) : Object;
  218. PROCEDURE MakeFamilyObject  (tags : LIST OF MuiTags) : Object;
  219.  
  220. PROCEDURE MakeMenustripObjectA (tags  : MuiTagAPtr) : Object;
  221. PROCEDURE MakeMenustripObject  (tags  : LIST OF MuiTags) : Object;
  222.  
  223. PROCEDURE MakeMenuObjectA (tags  : MuiTagAPtr) : Object;
  224. PROCEDURE MakeMenuObject  (tags  : LIST OF MuiTags) : Object;
  225.  
  226. PROCEDURE MakeMenuObjectTA (name : SysStringPtr; tags  : MuiTagAPtr) : Object;
  227. PROCEDURE MakeMenuObjectT  (name : SysStringPtr; tags  : LIST OF MuiTags) : Object;
  228.  
  229. PROCEDURE MakeMenuitemObjectA (tags  : MuiTagAPtr) : Object;
  230. PROCEDURE MakeMenuitemObject  (tags  : LIST OF MuiTags) : Object;
  231.  
  232. PROCEDURE MakeWindowObjectA (tags  : MuiTagAPtr) : Object;
  233. PROCEDURE MakeWindowObject  (tags  : LIST OF MuiTags) : Object;
  234.  
  235. PROCEDURE MakeImageObjectA (tags  : MuiTagAPtr) : Object;
  236. PROCEDURE MakeImageObject  (tags  : LIST OF MuiTags) : Object;
  237.  
  238. PROCEDURE MakeBitmapObjectA (tags  : MuiTagAPtr) : Object;
  239. PROCEDURE MakeBitmapObject  (tags  : LIST OF MuiTags) : Object;
  240.  
  241. PROCEDURE MakeBodychunkObjectA (tags  : MuiTagAPtr) : Object;
  242. PROCEDURE MakeBodychunkObject  (tags  : LIST OF MuiTags) : Object;
  243.  
  244. PROCEDURE MakeNotifyObjectA (tags  : MuiTagAPtr) : Object;
  245. PROCEDURE MakeNotifyObject  (tags  : LIST OF MuiTags) : Object;
  246.  
  247. PROCEDURE MakeApplicationObjectA (tags  : MuiTagAPtr) : Object;
  248. PROCEDURE MakeApplicationObject  (tags  : LIST OF MuiTags) : Object;
  249.  
  250. PROCEDURE MakeTextObjectA (tags  : MuiTagAPtr) : Object;
  251. PROCEDURE MakeTextObject  (tags  : LIST OF MuiTags) : Object;
  252.  
  253. PROCEDURE MakeRectangleObjectA (tags  : MuiTagAPtr) : Object;
  254. PROCEDURE MakeRectangleObject  (tags  : LIST OF MuiTags) : Object;
  255.  
  256. PROCEDURE MakeListObjectA (tags  : MuiTagAPtr) : Object;
  257. PROCEDURE MakeListObject  (tags  : LIST OF MuiTags) : Object;
  258.  
  259. PROCEDURE MakePropObjectA (tags  : MuiTagAPtr) : Object;
  260. PROCEDURE MakePropObject  (tags  : LIST OF MuiTags) : Object;
  261.  
  262. PROCEDURE MakeStringObjectA (tags  : MuiTagAPtr) : Object;
  263. PROCEDURE MakeStringObject  (tags  : LIST OF MuiTags) : Object;
  264.  
  265. PROCEDURE MakeScrollbarObjectA (tags  : MuiTagAPtr) : Object;
  266. PROCEDURE MakeScrollbarObject  (tags  : LIST OF MuiTags) : Object;
  267.  
  268. PROCEDURE MakeListviewObjectA (tags  : MuiTagAPtr) : Object;
  269. PROCEDURE MakeListviewObject  (tags  : LIST OF MuiTags) : Object;
  270.  
  271. PROCEDURE MakeRadioObjectA (tags  : MuiTagAPtr) : Object;
  272. PROCEDURE MakeRadioObject  (tags  : LIST OF MuiTags) : Object;
  273.  
  274. PROCEDURE MakeVolumelistObjectA (tags  : MuiTagAPtr) : Object;
  275. PROCEDURE MakeVolumelistObject  (tags  : LIST OF MuiTags) : Object;
  276.  
  277. PROCEDURE MakeFloattextObjectA (tags  : MuiTagAPtr) : Object;
  278. PROCEDURE MakeFloattextObject  (tags  : LIST OF MuiTags) : Object;
  279.  
  280. PROCEDURE MakeDirlistObjectA (tags  : MuiTagAPtr) : Object;
  281. PROCEDURE MakeDirlistObject  (tags  : LIST OF MuiTags) : Object;
  282.  
  283. PROCEDURE MakeSliderObjectA (tags  : MuiTagAPtr) : Object;
  284. PROCEDURE MakeSliderObject  (tags  : LIST OF MuiTags) : Object;
  285.  
  286. PROCEDURE MakeCycleObjectA (tags  : MuiTagAPtr) : Object;
  287. PROCEDURE MakeCycleObject  (tags  : LIST OF MuiTags) : Object;
  288.  
  289. PROCEDURE MakeGaugeObjectA (tags  : MuiTagAPtr) : Object;
  290. PROCEDURE MakeGaugeObject  (tags  : LIST OF MuiTags) : Object;
  291.  
  292. PROCEDURE MakeScaleObjectA (tags  : MuiTagAPtr) : Object;
  293. PROCEDURE MakeScaleObject  (tags  : LIST OF MuiTags) : Object;
  294.  
  295. PROCEDURE MakeBoopsiObjectA (tags  : MuiTagAPtr) : Object;
  296. PROCEDURE MakeBoopsiObject  (tags  : LIST OF MuiTags) : Object;
  297.  
  298. PROCEDURE MakeColorfieldObjectA (tags  : MuiTagAPtr) : Object;
  299. PROCEDURE MakeColorfieldObject  (tags  : LIST OF MuiTags) : Object;
  300.  
  301. PROCEDURE MakeColorpanelObjectA (tags  : MuiTagAPtr) : Object;
  302. PROCEDURE MakeColorpanelObject  (tags  : LIST OF MuiTags) : Object;
  303.  
  304. PROCEDURE MakeColoradjustObjectA (tags  : MuiTagAPtr) : Object;
  305. PROCEDURE MakeColoradjustObject  (tags  : LIST OF MuiTags) : Object;
  306.  
  307. PROCEDURE MakePaletteObjectA (tags  : MuiTagAPtr) : Object;
  308. PROCEDURE MakePaletteObject  (tags  : LIST OF MuiTags) : Object;
  309.  
  310. PROCEDURE MakeGroupObjectA (tags  : MuiTagAPtr) : Object;
  311. PROCEDURE MakeGroupObject  (tags  : LIST OF MuiTags) : Object;
  312.  
  313. PROCEDURE MakeRegisterObjectA (tags  : MuiTagAPtr) : Object;
  314. PROCEDURE MakeRegisterObject  (tags  : LIST OF MuiTags) : Object;
  315.  
  316. PROCEDURE MakeVirtgroupObjectA (tags  : MuiTagAPtr) : Object;
  317. PROCEDURE MakeVirtgroupObject  (tags  : LIST OF MuiTags) : Object;
  318.  
  319. PROCEDURE MakeScrollgroupObjectA (tags  : MuiTagAPtr) : Object;
  320. PROCEDURE MakeScrollgroupObject  (tags  : LIST OF MuiTags) : Object;
  321.  
  322. PROCEDURE MakePopstringObjectA (tags  : MuiTagAPtr) : Object;
  323. PROCEDURE MakePopstringObject  (tags  : LIST OF MuiTags) : Object;
  324.  
  325. PROCEDURE MakePopobjectObjectA (tags  : MuiTagAPtr) : Object;
  326. PROCEDURE MakePopobjectObject  (tags  : LIST OF MuiTags) : Object;
  327.  
  328. PROCEDURE MakePoplistObjectA (tags  : MuiTagAPtr) : Object;
  329. PROCEDURE MakePoplistObject  (tags  : LIST OF MuiTags) : Object;
  330.  
  331. PROCEDURE MakePopaslObjectA (tags  : MuiTagAPtr) : Object;
  332. PROCEDURE MakePopaslObject  (tags  : LIST OF MuiTags) : Object;
  333.  
  334. PROCEDURE MakeScrmodelistObjectA (tags  : MuiTagAPtr) : Object;
  335. PROCEDURE MakeScrmodelistObject  (tags  : LIST OF MuiTags) : Object;
  336.  
  337. PROCEDURE MakeVGroupA (tags  : MuiTagAPtr) : Object;
  338. PROCEDURE MakeVGroup  (tags  : LIST OF MuiTags) : Object;
  339.  
  340. PROCEDURE MakeHGroupA (tags  : MuiTagAPtr) : Object;
  341. PROCEDURE MakeHGroup  (tags  : LIST OF MuiTags) : Object;
  342.  
  343. PROCEDURE MakeColGroupA (cols  : LONGINT; tags  : MuiTagAPtr) : Object;
  344. PROCEDURE MakeColGroup  (cols  : LONGINT; tags  : LIST OF MuiTags) : Object;
  345.  
  346. PROCEDURE MakeRowGroupA (rows  : LONGINT; tags  : MuiTagAPtr) : Object;
  347. PROCEDURE MakeRowGroup  (rows  : LONGINT; tags  : LIST OF MuiTags) : Object;
  348.  
  349. PROCEDURE MakePageGroupA (tags  : MuiTagAPtr) : Object;
  350. PROCEDURE MakePageGroup  (tags  : LIST OF MuiTags) : Object;
  351.  
  352. PROCEDURE MakeVGroupAV (tags  : MuiTagAPtr) : Object;
  353. PROCEDURE MakeVGroupV  (tags  : LIST OF MuiTags) : Object;
  354.  
  355. PROCEDURE MakeHGroupAV (tags  : MuiTagAPtr) : Object;
  356. PROCEDURE MakeHGroupV  (tags  : LIST OF MuiTags) : Object;
  357.  
  358. PROCEDURE MakeColGroupAV (cols  : LONGINT; tags  : MuiTagAPtr) : Object;
  359. PROCEDURE MakeColGroupV  (cols  : LONGINT; tags  : LIST OF MuiTags) : Object;
  360.  
  361. PROCEDURE MakeRowGroupAV (rows  : LONGINT; tags  : MuiTagAPtr) : Object;
  362. PROCEDURE MakeRowGroupV  (rows  : LONGINT; tags  : LIST OF MuiTags) : Object;
  363.  
  364. PROCEDURE MakePageGroupAV (tags  : MuiTagAPtr) : Object;
  365. PROCEDURE MakePageGroupV  (tags  : LIST OF MuiTags) : Object;
  366.  
  367. PROCEDURE MakeRegisterGroupA (REF titles : StringArray; tags : MuiTagAPtr) : Object;
  368. PROCEDURE MakeRegisterGroup  (REF titles : StringArray; tags : LIST OF MuiTags) : Object;
  369.  
  370.  
  371. (***************************************************************************
  372. **
  373. ** Frame Types
  374. ** -----------
  375. **
  376. ** These procedures may be used to specify one of MUI's different frame types.
  377. ** Note that every procedure consists of one or more { ti_Tag, ti_Data }
  378. ** pairs.
  379. **
  380. ** GroupFrameT() is a special kind of frame that contains a centered
  381. ** title text.
  382. **
  383. ** HGroup; GroupFrameT("Horiz Groups");
  384. **    Child; RectangleObject; TextFrame  ; end;
  385. **    Child; RectangleObject; StringFrame; end;
  386. **    Child; RectangleObject; ButtonFrame; end;
  387. **    Child; RectangleObject; ListFrame  ; end;
  388. **    end;
  389. **
  390. ***************************************************************************)
  391.  
  392. CONST
  393.   NoFrame          = MuiTags : frame : none;
  394.   ButtonFrame      = MuiTags : frame : button;
  395.   ImageButtonFrame = MuiTags : frame : imageButton;
  396.   TextFrame        = MuiTags : frame : text;
  397.   StringFrame      = MuiTags : frame : string;
  398.   ReadListFrame    = MuiTags : frame : readList;
  399.   InputListFrame   = MuiTags : frame : inputList;
  400.   PropFrame        = MuiTags : frame : prop;
  401.   SliderFrame      = MuiTags : frame : slider;
  402.   GaugeFrame       = MuiTags : frame : gauge;
  403.   VirtualFrame     = MuiTags : frame : virtual;
  404.   GroupFrame       = MuiTags : frame : group;
  405.  
  406. GROUP
  407.   FrameGrp =
  408.     NoFrame,     ButtonFrame,   ImageButtonFrame, TextFrame,
  409.     StringFrame, ReadListFrame, InputListFrame,   PropFrame,
  410.     SliderFrame, GaugeFrame,    VirtualFrame,     GroupFrame;
  411.  
  412.  
  413. (***************************************************************************
  414. **
  415. ** Baring Procedures
  416. ** ------------------
  417. **
  418. ***************************************************************************)
  419.  
  420. PROCEDURE MakeHBar() : Object;
  421.  
  422. PROCEDURE MakeVBar() : Object;
  423.  
  424.  
  425. (***************************************************************************
  426. **
  427. ** Spacing Procedures
  428. ** ------------------
  429. **
  430. ***************************************************************************)
  431.  
  432. PROCEDURE MakeHVSpace() : Object;
  433.  
  434. PROCEDURE MakeHSpace (x : LONGINT) : Object;
  435. PROCEDURE MakeVSpace (x : LONGINT) : Object;
  436.  
  437. PROCEDURE MakeHCenterObject (obj : Object): Object;
  438. PROCEDURE MakeVCenterObject (obj : Object): Object;
  439.  
  440.  
  441. (***************************************************************************
  442. **
  443. ** String-Object
  444. ** -------------
  445. **
  446. ** The following procedure creates a simple string gadget.
  447. **
  448. ***************************************************************************)
  449.  
  450. PROCEDURE MakeStringA (contents  : SysStringPtr; maxlen  : LONGINT; tags  : MuiTagAPtr) : Object;
  451. PROCEDURE MakeString  (contents  : SysStringPtr; maxlen  : LONGINT; tags  : LIST OF MuiTags) : Object;
  452.  
  453. PROCEDURE MakeKeyStringA (contents  : SysStringPtr; maxlen  : LONGINT; controlchar  : CHAR; tags  : MuiTagAPtr) : Object;
  454. PROCEDURE MakeKeyString  (contents  : SysStringPtr; maxlen  : LONGINT; controlchar  : CHAR; tags  : LIST OF MuiTags) : Object;
  455.  
  456. (***************************************************************************
  457. **
  458. ** Integer-Object
  459. ** --------------
  460. **
  461. ** The following procedure creates a simple integer string gadget.
  462. **
  463. ***************************************************************************)
  464.  
  465. CONST
  466.   cardinalAccept = "0123456789";
  467.   integerAccept = "-0123456789";
  468.  
  469. PROCEDURE MakeIntegerA (contents : LONGINT; maxlen : LONGINT; tags : MuiTagAPtr) : Object;
  470. PROCEDURE MakeInteger (contents : LONGINT; maxlen : LONGINT; tags : LIST OF MuiTags) : Object;
  471.  
  472. PROCEDURE MakeKeyIntegerA (contents : LONGINT; maxlen  : LONGINT; controlchar : CHAR; tags  : MuiTagAPtr) : Object;
  473. PROCEDURE MakeKeyInteger (contents : LONGINT; maxlen  : LONGINT; controlchar : CHAR; tags  : LIST OF MuiTags) : Object;
  474.  
  475.  
  476. (***************************************************************************
  477. **
  478. ** CheckMark-Object
  479. ** ----------------
  480. **
  481. ** The following procedure creates a checkmark gadget.
  482. **
  483. ***************************************************************************)
  484.  
  485. PROCEDURE MakeCheckMarkA (checked : CBOOLEAN; tags  : MuiTagAPtr) : Object;
  486. PROCEDURE MakeCheckMark (checked : CBOOLEAN; tags  : LIST OF MuiTags) : Object;
  487.  
  488. PROCEDURE MakeKeyCheckMarkA (checked : CBOOLEAN; key : CHAR; tags : MuiTagAPtr) : Object;
  489. PROCEDURE MakeKeyCheckMark (checked : CBOOLEAN; key : CHAR; tags : LIST OF MuiTags) : Object;
  490.  
  491.  
  492. (***************************************************************************
  493. **
  494. ** Button-Objects
  495. ** --------------
  496. **
  497. ** Note: Use small letters for KeyButtons, e.g.
  498. **       KeyButton("Cancel",'c')  and not  KeyButton("Cancel",'C') !!
  499. **
  500. ***************************************************************************)
  501.  
  502. PROCEDURE MakeSimpleButtonA (name  : SysStringPtr; tags  : MuiTagAPtr) : Object;
  503. PROCEDURE MakeSimpleButton  (name  : SysStringPtr; tags  : LIST OF MuiTags) : Object;
  504.  
  505. PROCEDURE MakeKeyButtonA (name  : SysStringPtr; key  : CHAR; tags  : MuiTagAPtr) : Object;
  506. PROCEDURE MakeKeyButton  (name  : SysStringPtr; key  : CHAR; tags  : LIST OF MuiTags) : Object;
  507.  
  508. PROCEDURE MakeImageButtonA (image : StandardImages; freeVert, freeHoriz : CBOOLEAN := true; tags : MuiTagAPtr) : Object;
  509. PROCEDURE MakeImageButton  (image : StandardImages; freeVert, freeHoriz : CBOOLEAN := true; tags : LIST OF MuiTags) : Object;
  510.  
  511. (***************************************************************************
  512. **
  513. ** Cycle-Object
  514. ** ------------
  515. **
  516. ***************************************************************************)
  517.  
  518. PROCEDURE MakeCycleA (REF entries : StringArray; tags  : MuiTagAPtr) : Object;
  519. PROCEDURE MakeCycle  (REF entries : StringArray; tags  : LIST OF MuiTags) : Object;
  520.  
  521. PROCEDURE MakeKeyCycleA (REF entries : StringArray; key : CHAR; tags  : MuiTagAPtr) : Object;
  522. PROCEDURE MakeKeyCycle  (REF entries : StringArray; key : CHAR; tags  : LIST OF MuiTags) : Object;
  523.  
  524.  
  525. (***************************************************************************
  526. **
  527. ** Radio-Object
  528. ** ------------
  529. **
  530. ***************************************************************************)
  531.  
  532. PROCEDURE MakeRadioA (name : SysStringPtr; REF entries : StringArray; tags  : MuiTagAPtr) : Object;
  533. PROCEDURE MakeRadio  (name : SysStringPtr; REF entries : StringArray; tags  : LIST OF MuiTags) : Object;
  534.  
  535. PROCEDURE MakeKeyRadioA (name : SysStringPtr; REF entries : StringArray; key : CHAR; tags  : MuiTagAPtr) : Object;
  536. PROCEDURE MakeKeyRadio  (name : SysStringPtr; REF entries : StringArray; key : CHAR; tags  : LIST OF MuiTags) : Object;
  537.  
  538.  
  539. (***************************************************************************
  540. **
  541. ** Slider-Object
  542. ** -------------
  543. **
  544. ***************************************************************************)
  545.  
  546. PROCEDURE MakeSliderA     (min, max, level : LONGINT; tags  : MuiTagAPtr) : Object;
  547. PROCEDURE MakeSlider      (min, max, level : LONGINT; tags  : LIST OF MuiTags) : Object;
  548.  
  549. PROCEDURE MakeKeySliderA  (min, max, level : LONGINT; key : CHAR; tags  : MuiTagAPtr) : Object;
  550. PROCEDURE MakeKeySlider   (min, max, level : LONGINT; key : CHAR; tags  : LIST OF MuiTags) : Object;
  551.  
  552. PROCEDURE MakeVSliderA    (min, max, level : LONGINT; tags  : MuiTagAPtr) : Object;
  553. PROCEDURE MakeVSlider     (min, max, level : LONGINT; tags  : LIST OF MuiTags) : Object;
  554.  
  555. PROCEDURE MakeKeyVSliderA (min, max, level : LONGINT; key : CHAR; tags  : MuiTagAPtr) : Object;
  556. PROCEDURE MakeKeyVSlider  (min, max, level : LONGINT; key : CHAR; tags  : LIST OF MuiTags) : Object;
  557.  
  558.  
  559. (***************************************************************************
  560. **
  561. ** Scrollbar-Object
  562. ** -------------
  563. **
  564. ***************************************************************************)
  565.  
  566. PROCEDURE MakeScrollbarA     (first, visible, entries : LONGINT; tags : MuiTagAPtr) : Object;
  567. PROCEDURE MakeScrollbar      (first, visible, entries : LONGINT; tags : LIST OF MuiTags) : Object;
  568.  
  569. PROCEDURE MakeKeyScrollbarA  (first, visible, entries : LONGINT; key : CHAR; tags  : MuiTagAPtr) : Object;
  570. PROCEDURE MakeKeyScrollbar   (first, visible, entries : LONGINT; key : CHAR; tags  : LIST OF MuiTags) : Object;
  571.  
  572. PROCEDURE MakeVScrollbarA    (first, visible, entries : LONGINT; tags : MuiTagAPtr) : Object;
  573. PROCEDURE MakeVScrollbar     (first, visible, entries : LONGINT; tags : LIST OF MuiTags) : Object;
  574.  
  575. PROCEDURE MakeKeyVScrollbarA (first, visible, entries : LONGINT; key : CHAR; tags  : MuiTagAPtr) : Object;
  576. PROCEDURE MakeKeyVScrollbar  (first, visible, entries : LONGINT; key : CHAR; tags  : LIST OF MuiTags) : Object;
  577.  
  578.  
  579. (***************************************************************************
  580. **
  581. ** Button to be used for popup objects
  582. **
  583. ***************************************************************************)
  584.  
  585. PROCEDURE MakePopButtonA (img : StandardImages; tags  : MuiTagAPtr) : Object;
  586. PROCEDURE MakePopButton  (img : StandardImages; tags  : LIST OF MuiTags) : Object;
  587.  
  588.  
  589. (***************************************************************************
  590. **
  591. ** Popup-Object
  592. ** ------------
  593. **
  594. ** An often needed GUI element is a string gadget with a little button
  595. ** that opens up a (small) window with a list containing possible entries
  596. ** for this gadget. Together with the Popup and the String macro,
  597. ** such a thing would look like
  598. **
  599. ** VGroup;
  600. **    Child; PopupBegin;
  601. **             Child; STFont := String( "helvetica/13", 32 );
  602. **           PopupEnd( hook, m.iPopUp, STFont );
  603. **    ...;
  604. **
  605. ** STFont will hold a pointer to the embedded string gadget and can
  606. ** be used to set and get its contents as with every other string object.
  607. **
  608. ** For Hook description see below.
  609. ** The hook will be called with the string gadget as object whenever
  610. ** the user releases the popup button and could look like this:
  611. **
  612. ** PROCEDURE FontReq( hook : Hook; obj : Object : args : Args) : LONGINT;
  613. **   VAR window : I.WindowPtr;
  614. **       l, t, w, h : LONGINT;
  615. **       req : ASL.AslRequesterPtr;
  616. ** BEGIN
  617. **    ...
  618. **
  619. **    (* put our application to sleep while displaying the requester *)
  620. **      Set( Application, m.aApplicationSleep, TRUE );
  621. **
  622. **    (* get the calling objects window and position *)
  623. **      Get( obj, m.aWindow , window );
  624. **      Get( obj, m.aLeftEdge, l );
  625. **      Get( obj, m.aTopEdge, t );
  626. **      Get( obj, m.aWidth  , w );
  627. **      Get( obj, m.aHeight  , h );
  628. **
  629. **    req := m.AllocAslRequestTags( ASL.fontRequest, DONE )
  630. **    IF req # NIL THEN
  631. **
  632. **       IF (m.AslRequestTags(req,
  633. **               ASL.foWindow         ,window,
  634. **               ASL.foPrivateIDCMP   ,TRUE,
  635. **               ASL.foTitleText      ,"Select Font",
  636. **               ASL.foInitialLeftEdge,window->LeftEdge + l,
  637. **               ASL.foInitialTopEdge ,window->TopEdge  + t+h,
  638. **               ASL.foInitialWidth   ,w,
  639. **               ASL.foInitialHeight  ,250,
  640. **               DONE ) ) THEN
  641. **
  642. **          (* set the new contents for our string gadget *)
  643. **                              Set( args(PopupArgs).linkedObj, m.aStringContents, req(ASL.FontRequester).attr.name);
  644. **       END;
  645. **       m.FreeAslRequest( req );
  646. **   END;
  647. **
  648. **    (* wake up our application again *)
  649. **      Set(Application, m.aApplicationSleep, FALSE );
  650. **
  651. **      RETURN( 0);
  652. ** END FontReq:
  653. **
  654. ** Note: This Procedure is translated to Oberon on the fly, no warranty is given
  655. **       that this piece of code works.
  656. **
  657. ***************************************************************************)
  658.  
  659. | Erqt rudimentär - nicht verwenden!
  660. PROCEDURE MakePopupA (hook : Hook; img : StandardImages; obj : Object; tags : MuiTagAPtr) : Object;
  661. PROCEDURE MakePopup  (hook : Hook; img : StandardImages; obj : Object; tags : LIST OF MuiTags) : Object;
  662.  
  663.  
  664.  
  665. (***************************************************************************
  666. **
  667. ** Labeling Objects
  668. ** ----------------
  669. **
  670. ** Labeling objects, e.g. a group of string gadgets,
  671. **
  672. **   Small: |foo   |
  673. **  Normal: |bar   |
  674. **     Big: |foobar|
  675. **    Huge: |barfoo|
  676. **
  677. ** is done using a 2 column group:
  678. **
  679. ** ColGroup(2);
  680. **      Child; Label2( "Small:"  );
  681. **    Child; StringObject; end;
  682. **      Child; Label2( "Normal:" );
  683. **    Child; StringObject; end;
  684. **      Child; Label2( "Big:"    );
  685. **    Child; StringObject; end;
  686. **      Child; Label2( "Huge:"   );
  687. **    Child; StringObject; end;
  688. **    end;
  689. **
  690. ** Note that we have three versions of the label procedure, depending on
  691. ** the frame type of the right hand object:
  692. **
  693. ** Label1(): For use with standard frames (e.g. checkmarks).
  694. ** Label2(): For use with double high frames (e.g. string gadgets).
  695. ** Label() : For use with objects without a frame.
  696. **
  697. ** These procedures ensure that your label will look fine even if the
  698. ** user of your application configured some strange spacing values.
  699. ** If you want to use your own labeling, you'll have to pay attention
  700. ** on this topic yourself.
  701. **
  702. **************************************************************************)
  703.  
  704. PROCEDURE MakeLabel      (label : SysStringPtr) : Object;
  705. PROCEDURE MakeLabel1     (label : SysStringPtr) : Object;
  706. PROCEDURE MakeLabel2     (label : SysStringPtr) : Object;
  707. PROCEDURE MakeLLabel     (label : SysStringPtr) : Object;
  708. PROCEDURE MakeLLabel1    (label : SysStringPtr) : Object;
  709. PROCEDURE MakeLLabel2    (label : SysStringPtr) : Object;
  710. PROCEDURE MakeKeyLabel   (label : SysStringPtr; hichar : CHAR) : Object;
  711. PROCEDURE MakeKeyLabel1  (label : SysStringPtr; hichar : CHAR) : Object;
  712. PROCEDURE MakeKeyLabel2  (label : SysStringPtr; hichar : CHAR) : Object;
  713. PROCEDURE MakeKeyLLabel  (label : SysStringPtr; hichar : CHAR) : Object;
  714. PROCEDURE MakeKeyLLabel1 (label : SysStringPtr; hichar : CHAR) : Object;
  715. PROCEDURE MakeKeyLLabel2 (label : SysStringPtr; hichar : CHAR) : Object;
  716.  
  717.  
  718.  
  719. GROUP
  720.   HookGrp = HookEntry, MakeHook, SetHookObject;
  721.  
  722.   StdObjectGrp =
  723.     StoreObject,
  724.     MakeFamilyObjectA,        MakeFamilyObject,
  725.     MakeMenustripObjectA,     MakeMenustripObject,
  726.     MakeMenuObjectA,          MakeMenuObject,
  727.     MakeMenuObjectTA,         MakeMenuObjectT,
  728.     MakeMenuitemObjectA,      MakeMenuitemObject,
  729.     MakeWindowObjectA,        MakeWindowObject,
  730.     MakeImageObjectA,         MakeImageObject,
  731.     MakeBitmapObjectA,        MakeBitmapObject,
  732.     MakeBodychunkObjectA,     MakeBodychunkObject,
  733.     MakeNotifyObjectA,        MakeNotifyObject,
  734.     MakeApplicationObjectA,   MakeApplicationObject,
  735.     MakeTextObjectA,          MakeTextObject,
  736.     MakeRectangleObjectA,     MakeRectangleObject,
  737.     MakeListObjectA,          MakeListObject,
  738.     MakePropObjectA,          MakePropObject,
  739.     MakeStringObjectA,        MakeStringObject,
  740.     MakeScrollbarObjectA,     MakeScrollbarObject,
  741.     MakeListviewObjectA,      MakeListviewObject,
  742.     MakeRadioObjectA,         MakeRadioObject,
  743.     MakeVolumelistObjectA,    MakeVolumelistObject,
  744.     MakeFloattextObjectA,     MakeFloattextObject,
  745.     MakeDirlistObjectA,       MakeDirlistObject,
  746.     MakeSliderObjectA,        MakeSliderObject,
  747.     MakeCycleObjectA,         MakeCycleObject,
  748.     MakeGaugeObjectA,         MakeGaugeObject,
  749.     MakeScaleObjectA,         MakeScaleObject,
  750.     MakeBoopsiObjectA,        MakeBoopsiObject,
  751.     MakeColorfieldObjectA,    MakeColorfieldObject,
  752.     MakeColorpanelObjectA,    MakeColorpanelObject,
  753.     MakeColoradjustObjectA,   MakeColoradjustObject,
  754.     MakePaletteObjectA,       MakePaletteObject,
  755.     MakeGroupObjectA,         MakeGroupObject,
  756.     MakeRegisterObjectA,      MakeRegisterObject,
  757.     MakeVirtgroupObjectA,     MakeVirtgroupObject,
  758.     MakeScrollgroupObjectA,   MakeScrollgroupObject,
  759.     MakePopstringObjectA,     MakePopstringObject,
  760.     MakePopobjectObjectA,     MakePopobjectObject,
  761.     MakePoplistObjectA,       MakePoplistObject,
  762.     MakePopaslObjectA,        MakePopaslObject,
  763.     MakeScrmodelistObjectA,   MakeScrmodelistObject;
  764.  
  765.   GroupObjectGrp =
  766.     MakeVGroupA,              MakeVGroup,
  767.     MakeHGroupA,              MakeHGroup,
  768.     MakeColGroupA,            MakeColGroup,
  769.     MakeRowGroupA,            MakeRowGroup,
  770.     MakePageGroupA,           MakePageGroup,
  771.     MakeVGroupAV,             MakeVGroupV,
  772.     MakeHGroupAV,             MakeHGroupV,
  773.     MakeColGroupAV,           MakeColGroupV,
  774.     MakeRowGroupAV,           MakeRowGroupV,
  775.     MakePageGroupAV,          MakePageGroupV,
  776.     MakeRegisterGroupA,       MakeRegisterGroup;
  777.  
  778.   SimpleObjectGrp =
  779.     MakeHBar,          MakeVBar,         MakeHVSpace,
  780.     MakeHSpace,        MakeVSpace,
  781.     MakeHCenterObject, MakeVCenterObject,
  782.     MakeStringA,       MakeString,       MakeKeyStringA,     MakeKeyString,
  783.     MakeIntegerA,      MakeInteger,      MakeKeyIntegerA,    MakeKeyInteger,
  784.     integerAccept,     cardinalAccept,
  785.     MakeCheckMarkA,    MakeCheckMark,    MakeKeyCheckMarkA,  MakeKeyCheckMark,
  786.     MakeSimpleButtonA, MakeSimpleButton, MakeKeyButtonA,     MakeKeyButton,
  787.     MakeImageButtonA,  MakeImageButton,
  788.     MakeCycleA,        MakeCycle,        MakeKeyCycleA,      MakeKeyCycle,
  789.     MakeRadioA,        MakeRadio,        MakeKeyRadioA,      MakeKeyRadio,
  790.     MakeSliderA,       MakeSlider,       MakeKeySliderA,     MakeKeySlider,
  791.     MakeVSliderA,      MakeVSlider,      MakeKeyVSliderA,    MakeKeyVSlider,
  792.     MakeScrollbarA,    MakeScrollbar,    MakeKeyScrollbarA,  MakeKeyScrollbar,
  793.     MakeVScrollbarA,   MakeVScrollbar,   MakeKeyVScrollbarA, MakeKeyVScrollbar,
  794.     MakePopButtonA,    MakePopButton,    MakePopupA,         MakePopup;
  795.  
  796.   LabelObjectGrp =
  797.     MakeLabel,     MakeLabel1,     MakeLabel2,
  798.     MakeLLabel,    MakeLLabel1,    MakeLLabel2,
  799.     MakeKeyLabel,  MakeKeyLabel1,  MakeKeyLabel2,
  800.     MakeKeyLLabel, MakeKeyLLabel1, MakeKeyLLabel2;
  801.  
  802.   All = StdObjectGrp, GroupObjectGrp, SimpleObjectGrp, LabelObjectGrp, FrameGrp,
  803.     StringArray;
  804.  
  805. END MuiOSimple.
  806.  
  807.  
  808.  
  809.  
  810.